約 4,408,075 件
https://w.atwiki.jp/directx/pages/21.html
2Dのテクスチャを描画します。 test.png を読み込み、描画しています。 #include d3d9.h #include d3dx9.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9 g_pD3D = NULL;//Direct3D9 LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT g_pFont = NULL;//フォント LPDIRECT3DTEXTURE9 pTexture = NULL;//テクスチャ LPD3DXSPRITE pSprite = NULL;//スプライト //テキスト描画 void TextDraw(LPD3DXFONT pFont,char* text,int X,int Y) { RECT rect={X,Y,0,0};//描画位置 //スプライトポインタ(無くても良し),描画文字,文字数(-1で全部),描画範囲,フォーマット,色 pFont- DrawText(NULL, text, -1, rect, DT_LEFT | DT_NOCLIP, D3DCOLOR_ARGB(255, 0, 0, 0)); } //テクスチャ描画 void TexDraw(LPD3DXSPRITE pSpr,LPDIRECT3DTEXTURE9 pTex,int SrcX,int SrcY,int SrcW,int SrcH,int DstX,int DstY) { RECT rect={SrcX,SrcY,SrcW,SrcH};//画像の元位置 D3DXVECTOR3 Center(0,0,0);//センター D3DXVECTOR3 Pos((float)DstX,(float)DstY,0);//描画位置 pSpr- Begin(D3DXSPRITE_ALPHABLEND); pSpr- Draw(pTex, rect, Center, Pos,0xffffffff); pSpr- End(); } //Direct3D初期化 HRESULT InitD3D( HWND hWnd ) { //Direct3Dを生成する if(NULL==(g_pD3D=Direct3DCreate9(D3D_SDK_VERSION))){return E_FAIL;} //デバイス生成用のパラメーター D3DPRESENT_PARAMETERS d3dpp;//パラメーター構造体 ZeroMemory( d3dpp, sizeof(d3dpp) );//ゼロで初期化 d3dpp.Windowed = TRUE;//ウインドウモードで起動 d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;//バックバッファのスワップエフェクト Direct3Dにスワップエフェクトをまかせる d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;//バックバッファのフォーマット今表示されているモニタの設定と同じ d3dpp.BackBufferCount = 1;//バックバッファの数 d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;//マルチサンプリングは行わない d3dpp.MultiSampleQuality = 0;//マルチサンプリングは行わないので0 d3dpp.EnableAutoDepthStencil = TRUE;//Direct3Dに深度バッファの管理をまかせる d3dpp.AutoDepthStencilFormat = D3DFMT_D16;//深度バッファのフォーマット(通常はこの値で問題ない) d3dpp.hDeviceWindow = hWnd;//カバーウィンドウ=アプリケーションのウィンドウ d3dpp.Flags = 0;//フラグは使わない d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;//今のリフレッシュレートをそのまま使う d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;//モニタの垂直回帰を待つ //Direct3Dデバイスの生成 HAL(ハードウェアアクセラレーション) if(FAILED(g_pD3D- CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,D3DCREATE_HARDWARE_VERTEXPROCESSING, d3dpp, g_pd3dDevice))){ //HALが駄目ならHEL(ソフトウェアエミュレーション) if(FAILED(g_pD3D- CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp, g_pd3dDevice))){ //駄目なら終了 return(E_FAIL); } } //フォントの生成 MSゴシック //デバイス,文字高さ,文字幅,フォントスタイル,ミップマップのレベル,斜体にするかどうか,文字セット,出力精度,出力品質,フォントピッチとファミリ,フォント名,フォントポインタ HRESULT hr = D3DXCreateFont( g_pd3dDevice, 20, 0, FW_HEAVY, 1, false, SHIFTJIS_CHARSET, OUT_TT_ONLY_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE, MS ゴシック , g_pFont ); if FAILED(hr){return(E_FAIL);} //「テクスチャオブジェクト」の作成 if(FAILED(D3DXCreateTextureFromFileExA(g_pd3dDevice, test.png ,384,240,0,0, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT,D3DX_FILTER_NONE,D3DX_DEFAULT, 0x00000000,NULL,NULL, pTexture))) { MessageBox(0, テクスチャの作成に失敗しました , ,MB_OK); return E_FAIL; } // 「スプライトオブジェクト」の作成 if(FAILED(D3DXCreateSprite(g_pd3dDevice, pSprite))) { MessageBox(0, スプライトの作成に失敗しました , ,MB_OK); return E_FAIL; } return S_OK; } //終了時解放処理 VOID Cleanup() { SAFE_RELEASE(pSprite); SAFE_RELEASE(pTexture); SAFE_RELEASE(g_pFont); SAFE_RELEASE(g_pd3dDevice); SAFE_RELEASE(g_pD3D); } //レンダリング VOID Render() { //デバイスが無いなら終了 if(NULL==g_pd3dDevice){return;} //バックバッファのクリア g_pd3dDevice- Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255,255,255), 1.0f, 0 ); //シーンの開始 if(SUCCEEDED(g_pd3dDevice- BeginScene())) { //ここに処理内容を書く TextDraw(g_pFont, テクスチャの描画 ,0,0); TexDraw(pSprite,pTexture,0,0,384,240,50,50); //シーンの終了 g_pd3dDevice- EndScene(); } //バックバッファを表画面に反映させる g_pd3dDevice- Present( NULL, NULL, NULL, NULL ); } //メッセージプロシージャ LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_DESTROY //終了時 Cleanup(); PostQuitMessage(0); return 0; case WM_PAINT //ウインドウ描画時 Render(); return 0; case WM_SIZE //ウインドウサイズ変更時 InvalidateRect(hWnd,NULL,true);//画面更新 return 0; } return DefWindowProc( hWnd, msg, wParam, lParam ); } //メイン関数 INT WINAPI wWinMain( HINSTANCE hInst, HINSTANCE, LPWSTR, INT ) { //ウインドウクラスの登録 WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL, Window1 , NULL }; RegisterClassEx( wc ); //タイトルバーとウインドウ枠の分を含めてウインドウサイズを設定 RECT rect; SetRect( rect,0,0,640,480); AdjustWindowRect( rect, WS_OVERLAPPEDWINDOW, FALSE); rect.right=rect.right-rect.left; rect.bottom=rect.bottom-rect.top; rect.top=0; rect.left=0; //ウインドウの生成 HWND hWnd = CreateWindow( Window1 , Hello DirectX9 World !! , WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rect.right, rect.bottom, NULL, NULL, wc.hInstance, NULL ); //Direct3D初期化 if(SUCCEEDED(InitD3D(hWnd))) { //ウインドウ表示 ShowWindow(hWnd,SW_SHOWDEFAULT); UpdateWindow(hWnd); //メッセージループ MSG msg; while( GetMessage( msg,NULL,0,0)) { TranslateMessage( msg); DispatchMessage( msg); } } UnregisterClass( Window1 ,wc.hInstance); return 0; }
https://w.atwiki.jp/dungeontuber/pages/25.html
パレット エンシェントキャスター 小さき考古学者 魔王の呪いの研究をしているエルフの少女。 特殊な効果を持った古代魔法を使う。 スキル名 習得レベル MP TP 性能 ダメージ計算式 テクニカルブート 初期 30 0 TP再生+5%/TPC+10%/4T エンシェントアロー 初期 10 0 単体/遠距離/魔防一段階ダウン3T 100 + a.atk*2 + a.mat*3 + a.level*3 - b.def*2 マギアステラ イベント(プリュンデラー戦後) 0 40 味方単体/魔攻+/5T/MP40回復 自己再生術 初期 0 10 自己/HP・MP10%回復/3ターン物防+/即時再行動 ゲージクロック 初期 10 25 単体/ATBゲージ+80%/CT2 ハイパーゲージクロック 初期 25 70 全体/ATBゲージ+80%/CT8 小さき賢人 イベント(ヒートアイランド強化ボス(初回)) x x 最大HP/MP+20
https://w.atwiki.jp/lovely-fruity/pages/185.html
<VUレベル> 0-47:VU(48段階)の各レベルに応じて、該当レベル以上のセグメントを『レベル表示色』で表示 (シンプルでは該当レベルのセグメントのみ表示,累積では該当レベル以下の全てのセグメントも表示) (標準では指定した『レベル表示色』で表示,レインボーでは「レインボーカラー」で表示) 48-95:VU(48段階)の各レベルに応じて、該当レベル以上のセグメントを「『レベル表示色』よりも若干明るい色」で表示 (シンプルでは該当レベルのセグメントのみ表示,累積では該当レベル以下の全てのセグメントも表示) (標準では指定した「『レベル表示色』よりも若干明るい色」で表示,レインボーでは「レインボーカラー」で表示) 96-143:VU(48段階)の各レベルに応じて、該当レベル以上のセグメントを「『レベル表示色』よりも明るい色」で表示 (シンプルでは該当レベルのセグメントのみ表示,累積では該当レベル以下の全てのセグメントも表示) (標準では指定した「『レベル表示色』よりも明るい色」で表示,レインボーでは「レインボーカラー」で表示) 144-192:VU(48段階)の各レベルに応じて、該当レベル以上のセグメントを『レベル表示色』で表示 (シンプルでは常に背景色となり,累積でのみ該当レベルのセグメント間を表示) (標準では指定した『レベル表示色』で表示,レインボーでは「レインボーカラー」で表示) [制御ビット14(G 6)でデジタル7セグメント] <累積VUレベル(単色)> 193-198:VU(6段階)の各レベルに応じて、該当レベル以上のセグメントを『再生中色1』で表示 (常に指定した『再生中色1』で、該当レベル以下の全てのセグメントも表示) 199-202:VU(4段階)の各レベルに応じて、該当レベル以上のセグメントを『再生中色2』で表示 (常に指定した『再生中色2』で、該当レベル以下の全てのセグメントも表示) [制御ビット4(R 4)で設定表示用に変更][制御ビット5(R 5),6(R 6)で動作設定を変更] <感度> 203/204/205:感度がhigh/middle/low時に、該当の感度を『設定表示色』で表示 [制御ビット5(R 5),6(R 6)で動作設定を変更] <チャンネル> 206/207:左/右チャンネル時に、該当のチャンネルを『設定表示色』で表示 [制御ビット5(R 5),6(R 6)で動作設定を変更] <ピークレベル> 208-221:ピークレベル(14段階)の各レベルに応じて、該当レベル以上のセグメントをピークメーターの色設定で表示 (セグメントに対応するレベルもピークメーターの設定に従う) [制御ビット8,9(G 1)で設定変更] <状態> 222/223:再生中であれば『再生中色1』/『再生中色2』で表示 (再生中以外は『停止中色1」/『停止中色2』で表示) 224/225:再生中であれば『再生中色1』/『再生中色2』で表示 (再生中以外は『背景色』で表示) [制御ビット7(R 7)で動作設定を変更] <枠> 226:常に「枠の色(明るい部分)」で表示 227:常に「枠の色(暗い部分)」で表示 <背景> 228:常に「Fruityの背景色」で表示 <再生/停止> 229-232:再生中/停止中で、『再生中色1』/『停止中色1』と『背景色』をブレンド(4段階)して表示 (ブレンド比率は、75 25,50 50,30 70,15 85) 233-236:再生中/停止中で、『再生中色2』/『停止中色2』と『背景色』をブレンド(4段階)して表示 (ブレンド比率は、75 25,50 50,30 70,15 85) [制御ビット12(G 4)でデジタル7セグメント] <任意色> 168-183:パレットで設定された「任意色(16色)」で表示 [制御ビット14(G 6)をオンで使用] [制御ビット15(G 7),16(G 8)でグラデーション] 184-192:パレットで設定された「任意色(9色)」で表示 [制御ビット14(G 6)をオンで使用] 237-252:パレットで設定された「任意色(16色)」で表示 [制御ビット10(G 2),11(G 3)でグラデーション][制御ビット12(G 4)でデジタル7セグメント] <固定色> 253:常に指定された『前景色』で表示 254:常に指定された『背景色』で表示 <7セグメント> 144-167:レベルに対応する数字を表示するためのセグメント(24パーツ)を表示 [制御ビット14(G 6)をオンで使用] 229-252:レベルに対応する数字を表示するためのセグメント(24パーツ)を表示 [制御ビット12(G 4)をオンで使用] [制御ビット13(G 5)でマイナス表記用パーツを使用] <設定> 193:シンプル/累積の時に、該当モードを『設定表示色』/『背景色』で表示 [制御ビット4(R 4)をオンで使用] 194:累積/シンプルの時に、該当モードを『設定表示色』/『背景色』で表示 [制御ビット4(R 4)をオンで使用] 195:フェードアウトが、有効/無効の時に、『設定表示色』/『背景色』で表示 [制御ビット4(R 4)をオンで使用] 196:常にパレットで設定された「任意色(1色)」で表示 [制御ビット4(R 4)をオンで使用] 197/198-198:常に『設定表示色』/『背景色』で表示 [制御ビット4(R 4)をオンで使用] <レベル> 199/200/201/202:常に指定した『レベル表示色』/「『レベル表示色』よりも若干明るい色」/「『レベル表示色』よりも明るい色」/消灯色で表示 [制御ビット4(R 4)をオンで使用] <制御ビット> 227:パレット制御用(枠の暗い部分の色として使用,拡張ビットとしては未実装) 255:パレット制御用(色としては使用しない)
https://w.atwiki.jp/dslua/pages/74.html
タッチペンによる自由描画のサンプルです。 この方法でも描画できますが、ベストかどうかは?です。 -- タッチペンによる自由描画 TouchPen_FreeLine.lua -- タッチペン座標の配列 PosX = {} PosY = {} counter = 0-- 繰り返し回数 White = Color.new(31, 31, 31) -- 白(ホワイト) while not Keys.newPress.Start do Controls.read() startDrawing() screen.print(SCREEN_UP, 6 * 5, 8 * 3 , "mode") screen.print(SCREEN_UP, 6 * 5, 8 * 5, "Stylus.X") screen.print(SCREEN_UP, 6 * 5, 8 * 6, "Stylus.Y") screen.print(SCREEN_UP, 6 * 5, 8 * 8, "Stylus.deltaX") screen.print(SCREEN_UP, 6 * 5, 8 * 9, "Stylus.deltaY") screen.print(SCREEN_UP, 6 * 5 ,8 * 12, "PosX,Y CLS") screen.print(SCREEN_UP, 6 * 5, 8 * 15, "START Click Exit") -- mode Stylus.held タッチペンが押されている場合 if Stylus.held then screen.print(SCREEN_UP, 6 * 20, 8 * 3 , "Stylus.held") screen.print(SCREEN_UP, 6 * 20, 8 * 5 , Stylus.X) screen.print(SCREEN_UP, 6 * 20, 8 * 6 , Stylus.Y) screen.print(SCREEN_UP, 6 * 20, 8 * 8 , Stylus.deltaX) screen.print(SCREEN_UP, 6 * 20, 8 * 9 , Stylus.deltaY) -- タッチペンの座標記憶 counter = counter + 1 PosX[counter] = Stylus.X PosY[counter] = Stylus.Y end -- PosX,Y の配列を消去 if Keys.newPress.A or Keys.held.A then PosX = nil -- 配列の初期化(もっといい方法があると思われるが?) PosY = nil PosX = {} PosY = {} counter = 0 end -- タッチペンの座標記憶位置を描画 -- conter値が多くなると動作が遅くなる for i = 1 , counter do screen.drawLine(SCREEN_DOWN, PosX[i], PosY[i], PosX[i] + 1, PosY[i] + 1, White) end stopDrawing() end PosX = nil PosY = nil counter = nil White = nil 実行例 前のサンプルは、ペンの座標を取得の間隔の点描画になってしまいます。それをペンの座標同士を繋ぐことによって、より自由曲線らしく見えるようになります。 -- タッチペンによるLine描画 TouchPen_Line.lua -- タッチペン座標の配列 PosX = {} PosY = {} counter = 0-- 繰り返し回数 White = Color.new(31, 31, 31) -- 白(ホワイト) while not Keys.newPress.Start do Controls.read() startDrawing() screen.print(SCREEN_UP, 6 * 5, 8 * 3 , "mode") screen.print(SCREEN_UP, 6 * 5, 8 * 5, "Stylus.X") screen.print(SCREEN_UP, 6 * 5, 8 * 6, "Stylus.Y") screen.print(SCREEN_UP, 6 * 5, 8 * 8, "Stylus.deltaX") screen.print(SCREEN_UP, 6 * 5, 8 * 9, "Stylus.deltaY") screen.print(SCREEN_UP, 6 * 5 ,8 * 12, "PosX,Y CLS") screen.print(SCREEN_UP, 6 * 5, 8 * 15, "START Click Exit") -- mode Stylus.held タッチペンが押されている場合 if Stylus.held then screen.print(SCREEN_UP, 6 * 20, 8 * 3 , "Stylus.held") screen.print(SCREEN_UP, 6 * 20, 8 * 5 , Stylus.X) screen.print(SCREEN_UP, 6 * 20, 8 * 6 , Stylus.Y) screen.print(SCREEN_UP, 6 * 20, 8 * 8 , Stylus.deltaX) screen.print(SCREEN_UP, 6 * 20, 8 * 9 , Stylus.deltaY) -- タッチペンの座標記憶 counter = counter + 1 PosX[counter] = Stylus.X PosY[counter] = Stylus.Y end -- mode Stylus.released タッチペンが放された場合 if Stylus.released then screen.print(SCREEN_UP, 6 * 20, 8 * 3 , "Stylus.released") screen.print(SCREEN_UP, 6 * 20, 8 * 5 , Stylus.X) screen.print(SCREEN_UP, 6 * 20, 8 * 6 , Stylus.Y) screen.print(SCREEN_UP, 6 * 20, 8 * 8 , Stylus.deltaX) screen.print(SCREEN_UP, 6 * 20, 8 * 9 , Stylus.deltaY) -- タッチペンの座標記憶 counter = counter + 1 -- 放されたことを9999で表現 PosX[counter] = 9999 PosY[counter] = 9999 end -- PosX,Y の配列を消去 if Keys.newPress.A or Keys.held.A then PosX = nil -- 配列の初期化(もっといい方法があると思われるが? PosY = nil PosX = {} PosY = {} counter = 0 end -- タッチペンの座標記憶位置を描画 -- conter値が多くなると動作が遅くなる for i = 1 , counter -1 do -- 放された場合以外は描画 if PosX[i] ~= 9999 and PosX[i + 1] ~= 9999 then screen.drawLine(SCREEN_DOWN, PosX[i], PosY[i], PosX[i + 1] , PosY[i + 1] , White) end end stopDrawing() end PosX = nil PosY = nil counter = nil White = nil 実行例
https://w.atwiki.jp/livrenoirscript/pages/76.html
Bitmap クラスに高速な文字描画メソッドを追加します。 スクリプト本体 スクリプト本体(前提全部入り) 基本情報前提スクリプト 拡張タイプ 説明概要 メソッド● Bitmap#draw_number(x, y, width, height, value[, fmt]) ● Bitmap#draw_number(rect, value[, fmt]) ● Bitmap#draw_number_simple(x, y, value) ● Bitmap#draw_text_ex(rect, text) ● Minimum_Symbol.get(str) 備考再定義されるメソッド 設定項目 更新履歴 基本情報 前提スクリプト LNS000 組み込み拡張 拡張タイプ △ 開発用 (導入するだけでは特に変化しない) 説明 概要 キャッシュを用いた高速な文字描画メソッドを追加します。 旧版 LNS000 追加機能 に含まれていた文字描画に関するメソッドを分離したものです。 メソッド ● Bitmap#draw_number(x, y, width, height, value[, fmt]) ● Bitmap#draw_number(rect, value[, fmt]) 指定位置に数値 value を描画します。キャッシュを利用した高速な描画メソッドです。 x, y, width, height / rect描画位置を指定します。 矩形の設定は基本的に draw_text と同様で、描画に必要な幅が指定幅よりも大きい場合、はみ出るぶんは描画されません。 width の値には fmt の指定によって「桁数」を指定することもできます。 value描画する内容を数値(Numeric)または文字列(String)で渡します。 用途上は数値(0-9)が渡されることを想定していますが、文字列を渡しても正常に動作します。 数値(Numeric)を渡した場合、fmt を省略すると "d" として扱われます。 fmt 描画フォーマットを指定します。以下のオプションを「文字列で」指定します。 アライン指定0 左詰めで描画します。省略した場合も左詰めになります。 1 指定範囲の中央に描画します。高さ方向は常に中央揃えです。 2 右詰めで描画します。 アライン指定は fmt の最初に置く必要があります。 桁数指定d width の値を「桁数指定」と解釈するようになります。例えば width = 3 で fmt = "2d" の場合、「右詰めで最大3桁描画」という意味になります。 全角文字は2桁として扱われます。 幅制限無視w 描画に必要な幅が指定幅を超えても全てを描画します。 桁区切り(任意の記号) 直後の値に応じた桁数ごとに、指定の記号が入ります。 ",3" の場合、「下から3桁ごとに","が挿入される」という意味になります。 数値を省略した場合は 3桁ごとに挿入されます。 fmt 指定例 draw_number(x, y, 48, h, value, "2") 右詰めで描画されます。 value の描画に必要な幅が 48 を超える場合、超えたぶんは描画されません。 draw_number(x, y, 3, h, value, "2d") 右詰めで描画されます。 最大で 3 桁分のスペースが確保されますが、value が 3 桁(3 文字)を超える場合、超えたぶんは描画されません。 draw_number(x, y, 3, h, value, "2dw") 右詰めで描画されます。 3 桁分のスペースが確保されますが、value が 3 桁を超える場合、超えたぶんは更に左側にはみ出して描画されます。 draw_number(x, y, w, h, value, "_3") 3 桁ごとに "_" が桁区切りとして挿入されます。 draw_number(x, y, w, h, value, "2,4") 右詰めで描画されます。 4 桁ごとに "," が桁区切りとして挿入されます。 draw_number(x, y, 10, h, value, "d2,3") 最大で 10 桁ぶんのスペースが確保されます。区切り文字も桁数に含みます。 3 桁ごとに "," が桁区切りとして挿入されます。 「2」は文字列の最初にないため、解釈されません(右詰めになりません)。 ● Bitmap#draw_number_simple(x, y, value) draw_number からレイアウトに関する処理を全て除いた高速な描画メソッドです。 draw_number よりも2倍程度高速です。毎フレーム書き換え続ける必要がある数値を描画する場合などはこちらをご利用ください。 ● Bitmap#draw_text_ex(rect, text) Window_Base にある同名のメソッドの部分的移植です。制御文字(\N[1]など)の解釈を一切行いません。 ● Minimum_Symbol.get(str) 1 文字あたり 5*7 ピクセルの極小フォントによって str を描画したビットマップを返します。 RGSS の文字描画機能では font.size が 12 以下の場合ぼやけて見づらくなるので、小さい数値を表記するときの代替手段として用意されています。 1 文字の幅は 5 ピクセルですが、そのうち 1 ピクセルは重ねて描画されます。すなわち、文字数 X の文字列を描画するとき、ビットマップの幅は X * 4 + 1 となります。 str の内容として使える文字は以下のいずれかに限ります。 0 1 2 3 4 5 6 7 8 9 ( ) . , + - * / ^ = ! ? _ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (アルファベットは小文字も大文字も同じ形になる) 上記以外の文字を含む場合、その部分は空白になります。 備考 再定義されるメソッド なし 設定項目 なし 更新履歴 2020/12/28 公開 コメント すべてのコメントを見る
https://w.atwiki.jp/vipdetyuuni/pages/118.html
「芸術は…爆発だ!」 性別 男 年齢 16歳 属性 特殊系、無属性 誕生日 ここにプロフィール 身長 166cm 体重 50kg 趣味 絵を描くこと 好きな食べ物 パフェ、ケーキ、イタリア料理、フランス料理 嫌いな食べ物 盛り付けに失敗した料理 得意スポーツ スポーツは苦手 好き 芸術的なもの 嫌い 芸術的でないもの 大切 絵画セット トラウマ 今のところ不明 {{能力}} 【夢現描画】 専用の絵の具で、専用の紙に絵を描くことで、それを具現化する。 ただし動物や架空の道具は無理。(覚醒でできるようになる?) 紙は大きさを自由に変えられ、決して欠損しない。絵の具も無尽蔵で、色は虹の七色+黒、白。ただしこの絵の具は専用の筆と紙にしか付かない 【無限鉢巻】の双子の兄 ***その他 + 容姿、性格など やや痩せ型で、髪の毛は黒い。常にベレー帽をかぶっている。 イタリアとフランスに行った事があり、イタリア語とフランス語が話せる。「芸術的」が口癖で戦い方も芸術的なものを好む。 弟の幼児趣味は認めている。と言うか本人にもある。理由は「芸術的だから」 最近パスタ作りを始めた 最近、【クリエイターズ・ギルド】に加入した
https://w.atwiki.jp/il-wiki/pages/244.html
Last up date 2011-06-02 18 20 26 (Thu) 目次 パレット パレット NPCの詳細をかいていく予定です ▲ 過去のコメントはコチラ 名前
https://w.atwiki.jp/irarchive/pages/1334.html
サイト ホームページ(日パレット) IRサイト(日パレット) CSRサイト(日パレット) 各種ツール 事業報告書(日パレット) アニュアルレポート(日パレット) CSRレポート(日パレット) 総会通知(日パレット) 有価証券報告書(日パレット) 決算短信(日パレット) 中期経営計画(日パレット) その他資料(日パレット) 戻る
https://w.atwiki.jp/f-01a/pages/16.html
iアプリ iアプリDoJaプロファイルとの互換性について DoJaからStarへ移行するメリットとデメリットStar移行のメリット Star移行のデメリット F-01Aのiアプリのスペック F-01AのオプションAPI対応状況 Starプロファイルにおいてのiアプリ開発Tips DoJa5.1→Star1.0の変更点 Star1.0→Star1.1の変更点 Star1.1→Star1.2の変更点 Star1.2→Star1.3の変更点 Star1.3→Star1.5の変更点 Starプロファイルでの新機能・変更点基本事項 DoJaプロファイルとの互換性について バイナリ互換機能によりDoJa-5.1相当のアプリを実行可能現在公開されているiアプリをそのまま利用できる この機能は当面の間だけであり、今後は無くなる可能性がある DoJaアプリ実行時の制限DoJaアプリからの連携起動ではDoJaアプリしか起動できない 連携起動時の最大パラメータサイズが異なる DoJaアプリは待ち受け起動できるがStarアプリはできないただし同様の機構は存在する(iWidgetのみ) DoJaアプリかStarアプリかはADFのAppTypeキーの有無によって判別される DoJaからStarへ移行するメリットとデメリット Star移行のメリット iウィジェット(ミニアプリ)を作成できる Flashと連携できる(FlashPlayerPane) ソフトキーを4つ使用できるDoJaでは左上と右上の2つのみ 決定キーにラベルを設定できる決定キーの機能を明確にできる 方向キーの矢印の表示方向キー使用可否やスクロール有無を示せる 対応フォントサイズの増加12/16/24/30/32/48/60ドット+拡張サイズが使用可能 DoJaで確実に使用できるのは12/24ドットのみ(他のサイズは機種依存) タッチパネルを利用できる(TouchDevice) シンセサイザを動的制御できる(Synthesizer) トラステッド機能の強化iアプリオンラインを利用できる(SocketConnection/UDPDatagramConnection) iアプリコールを利用できる(Invitation) アプリからマイメニュー登録ができる(Contents) 独自クラスの組み込みが可能(ByteArrayClassLoader)クラスを外部から取得して組み込める 拡張機能をネットワークから取得するなどの使い方が可能 Star移行のデメリット ソースの手直しが必要になるただしDoJa-5.1からの単純移植であれば比較的簡単に移行可能 詳細はiアプリ開発Tipsを参照 待ち受けアプリケーションが作成できない 現状では対応端末が少ない905iや906iの値下げもあるためなかなかユーザが増えない? 一般開発者にとっては新規クラスが少なく機能規制緩和も無い F-01Aのiアプリのスペック iアプリのスペックを参照 F-01AのオプションAPI対応状況 API対応状況を参照 Starプロファイルにおいてのiアプリ開発Tips iアプリ開発Tipsを参照 DoJa5.1→Star1.0の変更点 DoJa5.1→Star1.0を参照 Star1.0→Star1.1の変更点 Star1.0→Star1.1を参照 Star1.1→Star1.2の変更点 Star1.1→Star1.2を参照 Star1.2→Star1.3の変更点 Star1.2→Star1.3を参照 Star1.3→Star1.5の変更点 Star1.3→Star1.5を参照 Starプロファイルでの新機能・変更点 基本事項 DoJa-5.1に対する機能追加という位置づけ既存クラスは基本的に残っているが削除されたものもある 一部オプションAPIが基本APIになった 詳細はDoJa5.1→Star1.0を参照 パッケージ名が変更になったcom.nttdocomo → com.docomostar アプリによってはimportと起動クラスを書き換えるだけで移行できるimportのcom.nttdocomoをcom.docomostarに置換 起動クラスのextendsをIApplicationからStarApplicationに変更 起動クラスのvoid start()をvoid started(int launchType)に変更 詳細はiアプリ開発Tipsを参照 アプリ形態が大きく分けて3つに増加フルアプリ(iアプリ) ミニアプリ(iWidgetまたはウィジェットアプリ) フル+ミニアプリ(上記2つを1つにパッケージしたもの)フル+ミニアプリ(通常起動時にフルアプリが起動する) ミニ+フルアプリ(通常起動時にミニアプリが起動する) フル+ミニアプリの場合、スクラッチパッド領域は共有されるただしスクラッチパッドの0番目(scratchPad ///0)のみ ミニアプリが0番目にしかアクセスできないため ミニアプリの制限UI絡みのオプションAPIがほぼ使用不可 基本APIのオプション機能は一部使用不可 JARが50KB、スクラッチパッド(scratchPad ///0のみ可)が200KBに制限 ソフトキーは左上と右上の2つのみ制御可能(残りはWidgetViewが使用) 領域サイズは440x80, 320x240, 240x320, 160x160のみただしフェイス画像によりさらに小さくしたり角を丸めたりできる 一覧表示状態では上記サイズから60%程度に縮小されて表示される ミニアプリは同時実行できるが動作が競合した場合は基本的に後発が無効になる ヒープがフルアプリに対して1割程度となる
https://w.atwiki.jp/opengl/pages/317.html
普通に描画したモデルの後に少し大きくしたモデルの裏面を黒で描画すると 輪郭線の様に見えます。 ファイル main.cpp main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include math.h #include GL/freeglut/freeglut.h #define PAI 3.14159 //光源 float lightPos[] = {10.0, 15.0, 10.0, 1.0};//光源位置 //カメラと視体積 struct View{ //カメラ float pos[3];//位置(視点) float cnt[3];//注視点 float dist; //注視点から視点までの距離 float theta; //仰角(水平面との偏角) float phi; //方位角 //視体積 float fovY; //視野角 float nearZ; //前方クリップ面(近平面) float farZ; //後方クリップ面(遠平面) }; View view = { 0.0, 0.0, 0.0,//pos(仮設定) 0.0, 1.0, 0.0,//cnt 10.0, 30.0, 20.0,//dist, theta, phi 30.0, 1.0, 100.0//fovY,nearZ, farZ }; View view0 = view; //Windowのサイズ int width = 320; int height = 240; //アフィン変換 enum SELECT_KEY {ROTATE, SCALE, TRANSLATE, LIGHT}; SELECT_KEY sKey = TRANSLATE; //マウス操作 int xStart, yStart; bool flagMouse = false; float Line_Size = 0.1f; //緑 GLfloat green[] = { 0.0, 1.0, 0.0, 1.0 }; //黒 GLfloat black[] = { 0.0, 0.0, 0.0, 1.0 }; void setLight(){ float lightAmbient0[] = {0.5, 0.5, 0.5, 1.0}; //環境光 float lightDiffuse0[] = {1.0, 1.0, 1.0, 1.0}; //拡散光 float lightSpecular0[] = {1.0, 1.0, 1.0, 1.0};//鏡面光 glLightfv(GL_LIGHT0, GL_AMBIENT, lightAmbient0); glLightfv(GL_LIGHT0, GL_DIFFUSE, lightDiffuse0); glLightfv(GL_LIGHT0, GL_SPECULAR, lightSpecular0); glLightfv(GL_LIGHT0, GL_POSITION, lightPos); glEnable(GL_LIGHT0); glEnable(GL_LIGHTING); } void resize(int w, int h){ glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(view.fovY, (double)w/(double)h, view.nearZ, view.farZ); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); width = w; height = h; } void setCamera(){ double pp = PAI / 180.0; view.pos[2] = view.cnt[2] + view.dist * cos(pp * view.theta) * cos(pp * view.phi);//z view.pos[0] = view.cnt[0] + view.dist * cos(pp * view.theta) * sin(pp * view.phi);//x view.pos[1] = view.cnt[1] + view.dist * sin(pp * view.theta);//y resize(width, height); } void idle(void){ glutPostRedisplay(); } void init(void){ glClearColor(1.0, 1.0, 1.0, 1.0); setCamera(); setLight(); glEnable(GL_DEPTH_TEST); glEnable(GL_NORMALIZE); glEnable(GL_CULL_FACE); glCullFace(GL_FRONT); } void display(void){ //カラーバッファ,デプスバッファのクリア glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); if(cos(PAI * view.theta /180.0) = 0.0)//カメラ仰角90度でビューアップベクトル切替 gluLookAt(view.pos[0], view.pos[1], view.pos[2], view.cnt[0], view.cnt[1], view.cnt[2], 0.0, 1.0, 0.0); else gluLookAt(view.pos[0], view.pos[1], view.pos[2], view.cnt[0], view.cnt[1], view.cnt[2], 0.0, -1.0, 0.0); //光源設定// l を押した後光源位置可変 glLightfv(GL_LIGHT0, GL_POSITION, lightPos); glEnable(GL_TEXTURE_2D); glCullFace(GL_BACK); //マテリアルの設定 glMaterialfv(GL_FRONT, GL_DIFFUSE, green); glutSolidTorus(1.0,1.5,16,16); glDisable(GL_TEXTURE_2D); glCullFace(GL_FRONT); glMaterialfv(GL_FRONT, GL_DIFFUSE, black); glutSolidTorus(1.0+Line_Size,1.5,16,16); //終了 glutSwapBuffers(); } //以下の3個の関数はマウス操作による視点の変更に必要 void mouse(int button, int state, int x, int y){ double pp = PAI / 180.0; if(button == GLUT_LEFT_BUTTON state == GLUT_DOWN){ xStart = x; yStart = y; flagMouse = true; if(x width/4 x 3*width/4 y height/4 y 3*height/4)//dolly { } }else if(button == GLUT_RIGHT_BUTTON state == GLUT_DOWN){ if(x width/4 x 3*width/4 y height/4 y 3*height/4)//dolly { }else if(( x width/4 || x 3*width/4) (y height/4 y 3*height/4)){ if(x width/4 ) view.phi -= 1.0; else view.phi += 1.0; view.cnt[2] = view.pos[2] - view.dist * cos(pp * view.phi) * cos(pp * view.theta); view.cnt[0] = view.pos[0] - view.dist * sin(pp * view.phi) * cos(pp * view.theta); }else if((x width/4 x 3*width/4) (y height/4 || y 3*height/4)){ if( y height/4) view.theta += 1.0; else view.theta -= 1.0; view.cnt[2] = view.pos[2] - view.dist * cos(pp * view.theta) * cos(pp * view.phi); view.cnt[0] = view.pos[0] - view.dist * cos(pp * view.theta) * sin(pp * view.phi); view.cnt[1] = view.pos[1] - view.dist * sin(pp * view.theta); } else if(x width/8 y 7*height/8) view.fovY -= 1.0;//zoom in else if(x 7*width/8 y 7*height/8) view.fovY += 1.0;//zoom out } else flagMouse = false; if(state == GLUT_DOWN) setCamera(); } void motion(int x, int y){ if(!flagMouse) return; if(cos(PAI * view.theta /180.0) = 0.0) view.phi -= 0.5 * (float)(x - xStart) ;//tumble else view.phi += 0.5 * (float)(x - xStart) ;//tumble view.theta += 0.5 * (float)(y - yStart) ;//crane setCamera(); xStart = x; yStart = y; } void main(int argc, char** argv){ glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutInitWindowSize(width, height); glutInitWindowPosition(100, 100); glutCreateWindow( 簡易輪郭線描画 ); glutReshapeFunc(resize); glutDisplayFunc(display); glutMouseFunc(mouse); glutMotionFunc(motion); glutIdleFunc(idle); init(); glutMainLoop(); }